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



